Pular para o conteúdo

Criando uma simples lixeira para o usuário [Melhorado]

Versão melhorada de um script que cria uma simples lixeira para o usuário.
(Versão Tcl)

Falou!!!
Sandro Marcell SMarcell
Hits: 4.226 Categoria: Tcl/Tk Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Versão melhorada de um script que cria uma simples lixeira para o usuário.
(Versão Tcl)

Falou!!!
Download lixo.tcl Enviar nova versão

Esconder código-fonte

#!/usr/bin/tcl
#
# Criando uma simples lixeira para o usuário.
# (Versão Tcl)
#
# Autor: Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Uso: nome_script -r arquivo1 [arquivoN]
#      ou -e [Para esvaziar a lixeira]
#
# Obs.:
# Arquivos e diretórios são removidos sem pedido de confirmação.
# É possível o uso do metacaractere (*)
# A opção -e remove a lixeira

# Utilizando o script:
proc Uso {argv0} {
puts stderr "Uso: [file tail $argv0] -r arquivo1 \[arquivoN\]
     ou -e \[Para esvaziar a lixeira\]"
}

# Checando parâmetros:
if {$argc == 0} {
   Uso $argv0
   exit
}

# A lixeira:
variable LIXEIRA "~/lixeira"
if {![file exists $LIXEIRA]} {
   file mkdir $LIXEIRA
}

# Simples avisos:
variable SUCESSO "Arquivo removido!" ERRO "-> Erro de entrada/saída. "

# Capturando opção:
set OPC [lvarpop argv 0]

# Testando opção capturada:
switch -- $OPC {
   -e {
      # Checando parâmetros:
      if {[llength $argv] >= 1} {
         puts stderr "A opção \[-e\] não aceita parâmetros."
         exit
      } else {
         if {[catch {file delete -force $LIXEIRA}] == 0} {
                  puts stdout "Lixeira limpa!"
                  exit
               } else {
                  puts stderr $ERRO
                  exit
               }
            }
         }      
   -r {
      # Início do loop:
      foreach A $argv {
      # Testes condicionais:
      if {![file exists $A]} {
         puts stderr "-> Arquivo ou diretório não encotrado."
         continue
   } elseif {![file owned $A]} {
   puts stderr "-> Sem permissão para remover."
   continue
}
# Removendo:
if {[catch {file copy -force $A $LIXEIRA}] == 0 &&\
[catch {file delete -force $A}] == 0} {
      puts stdout $SUCESSO
   } else {
      puts stderr $ERRO
   }
}
}
   default {
      Uso $argv0
      exit
   }
}
# Fim

Simples visualizador de arquivos texto

Compactando / descompactando arquivos (Melhorado)

Convertendo escalas termométricas

Gerando senhas aleatórias

Simples relógio digital

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.